package stream;

import java.util.ArrayList;
import java.util.List;
import java.util.Optional;

/***
 * Reduce 中文翻译为：减少、缩小。通过入参的 Function，我们能够将 list 归约成一个值。它的返回类型是 Optional 类型。
 */
public class StreamReduceDemo {


    public static void main(String[] args){
        List<String> stringCollection = new ArrayList<>();
        stringCollection.add("ddd2");
        stringCollection.add("aaa2");
        stringCollection.add("bbb1");
        stringCollection.add("aaa1");
        stringCollection.add("bbb3");
        stringCollection.add("ccc");
        stringCollection.add("bbb2");
        stringCollection.add("ddd1");

        Optional<String> reduced = stringCollection.stream().sorted().reduce((s1,s2) -> s1 + "#" +s2);
        reduced.ifPresent(System.out::println);

    }
}
